package com.ideaaedi.zoo.diy.artifact.flowable.service.form;

import com.ideaaedi.zoo.diy.artifact.flowable.facade.form.BpmnFormData;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

/**
 * form管理
 *
 * @author <font size = "20" color = "#3CAA3C"><a href="https://gitee.com/JustryDeng">JustryDeng</a></font> <img
 * src="https://gitee.com/JustryDeng/shared-files/raw/master/JustryDeng/avatar.jpg" />
 * @since 1.0.0
 */
public interface BpmnFormService {
    
    /**
     * 获取流程启动流程实例需要的表单信息
     * <p>
     * 用法参考：可用其来定义启动流程需要哪些流程变量
     * </p>
     *
     * @param tenant 租户
     * @param processDefinitionId 流程定义id
     *
     * @return 流程实例启动需要的表单信息
     */
    @Nullable
    BpmnFormData getStartFormData(@Nonnull String tenant, @Nonnull String processDefinitionId);

    /**
     * 获取任务的表单信息
     *
     * @param tenant 租户
     * @param taskId 任务id
     *
     * @return 任务的表单信息
     */
    @Nullable
    BpmnFormData getTaskFormData(@Nonnull String tenant, @Nonnull String taskId);
}
